www.gusucode.com > VC++ 机器人语音控制系统 > VC++ 机器人语音控制系统/gusucode/ROBOT/robotView.cpp

    //Download by http://www.NewXing.com
// robotView.cpp : implementation of the CRobotView class
//

#include "stdafx.h"
#include "robot.h"
#include"Label.h"

#include "robotDoc.h"
#include "robotView.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CRobotView

IMPLEMENT_DYNCREATE(CRobotView, CFormView)

BEGIN_MESSAGE_MAP(CRobotView, CFormView)
	//{{AFX_MSG_MAP(CRobotView)
	ON_WM_CTLCOLOR()
	ON_WM_TIMER()
	//}}AFX_MSG_MAP
	ON_MESSAGE(WM_COMMNOTIFY, OnCommNotify)
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CRobotView construction/destruction

CRobotView::CRobotView()
	: CFormView(CRobotView::IDD)
{
	//{{AFX_DATA_INIT(CRobotView)
	//}}AFX_DATA_INIT
	// TODO: add construction code here
	m_ncomand1=10;
	m_bflag=0;
	m_nsudu=1;
	m_ngzq=0;
	m_nguanjie;
	m_nfangxiang;
	m_nmsg[0]=0;
	m_njishu=0;
	m_nmsg[1]=0;
	m_nmsg[2]=0;
	m_nmsg[3]=0;
	m_nmsg[4]=0;
	m_nsum=0;
	m_ndelay=0;
	nLength=0;
	m_recflag=1;
	m_failflag=1;
	m_brush.CreateSolidBrush(RGB(40,98,122)); // 生成一绿色刷子 

}

CRobotView::~CRobotView()
{
}

void CRobotView::DoDataExchange(CDataExchange* pDX)
{
	CFormView::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CRobotView)
	//DDX_Control(pDX, IDC_EDIT1, m_edit1);
	DDX_Control(pDX, IDC_STATIC_LINK, m_link);
	DDX_Control(pDX, IDC_STATIC_1, m_ml);
	DDX_Control(pDX, IDC_STATIC_4, m_workpart);
	DDX_Control(pDX, IDC_STATIC_COMMAND, m_command);
	DDX_Control(pDX, IDC_STATIC_STATUS, m_static);
	DDX_Control(pDX, IDC_STATIC_BUCHANG, m_buchangshu);
	DDX_Control(pDX, IDC_STATIC_5, m_buchang);
	DDX_Control(pDX, IDC_STATIC_3, m_sudu);
	DDX_Control(pDX, IDC_STATIC_2, m_zhuangtai);
	//}}AFX_DATA_MAP
}

BOOL CRobotView::PreCreateWindow(CREATESTRUCT& cs)
{
	// TODO: Modify the Window class or styles here by modifying
	//  the CREATESTRUCT cs

	return CFormView::PreCreateWindow(cs);
}



/////////////////////////////////////////////////////////////////////////////
// CRobotView diagnostics

#ifdef _DEBUG
void CRobotView::AssertValid() const
{
	CFormView::AssertValid();
}

void CRobotView::Dump(CDumpContext& dc) const
{
	CFormView::Dump(dc);
}

CRobotDoc* CRobotView::GetDocument() // non-debug version is inline
{
	ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CRobotDoc)));
	return (CRobotDoc*)m_pDocument;
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CRobotView message handlers

void CRobotView::OnDraw(CDC* pDC) 
{
	// TODO: Add your specialized code here and/or call the base class
	SuduDisplay(m_nsudu);
	GzqDisplay(m_ngzq);
}

void CRobotView::OnInitialUpdate() 
{
	CFormView::OnInitialUpdate();
	
	// TODO: Add your specialized code here and/or call the base class
	m_link.SetLink(TRUE)
		.SetTextColor(RGB(0,0,255))
		.SetFontUnderline(TRUE)
		.SetLinkCursor(AfxGetApp()->LoadCursor(IDC_ICON1));
	m_command.SetFontSize(24)
		.SetFontName("Terminal")
			  .SetTextColor(RGB(240,240,40));
	m_static.SetFontSize(24)
			  .SetTextColor(RGB(240,240,40));
	m_workpart.SetFontSize(24)
		.SetFontBold(TRUE)
			  .SetTextColor(RGB(0,240,0));
	m_buchangshu.SetFontSize(24)
			  .SetTextColor(RGB(240,240,40));
	m_buchang.SetFontSize(24)
			.SetFontBold(TRUE)
			  .SetTextColor(RGB(0,240,0));
	m_sudu.SetFontSize(24)
			.SetFontBold(TRUE)
			  .SetTextColor(RGB(0,240,0));
	m_zhuangtai.SetFontSize(24)
			.SetFontBold(TRUE)
			  .SetTextColor(RGB(0,240,0));
	m_ml.SetFontSize(24)
			.SetLinkCursor(AfxGetApp()->LoadCursor(IDC_ICON1))
			.SetFontBold(TRUE)
			 .SetTextColor(RGB(0,240,0));
	GetParentFrame()->RecalcLayout();
	ResizeParentToFit();
}

LRESULT CRobotView::WindowProc(UINT message, WPARAM wParam, LPARAM lParam) 
{
	// TODO: Add your specialized code here and/or call the base class
	if(message == (WM_USER + 1002))
		ProcessMessage(wParam, lParam);
	else if(message==(WM_USER+1003))
		ProcessMyMessage();
	return CFormView::WindowProc(message, wParam, lParam);
}
void CRobotView::ProcessMessage(WPARAM wParam, LPARAM lParam)
{
	
	CRobotDoc* pDoc=GetDocument();
	char* l[57] = {"零","一","二",///012
		"三","四","五","六","七","八","九","执行","各关节归零","大臂正转",///12
		"大臂反转","小臂正转","小臂反转","手腕正转","手腕反转","手爪张开","手爪闭合","上升","下降","大臂运行",///13--22
		"大臂负运行","小臂运行","小臂负运行","手腕运行","手腕负运行","手爪运行","手爪负运行","升降运行",////23---30
		"升降负运行","大臂归零","小臂归零","手腕归零","手爪归零","升降归零","速度加","原点记忆",///31---38
		"系统复位","示教盒","","","回原点","速度减","区号加","区号减","单步再现","周期再现",///39---48
		"连续再现","返回","继续","数据记忆","读取数据","设置串口","打开串口","关闭串口"};	
	CString    strcomand;
	CString    strstatus;
	m_recflag=1;
	if(!pDoc->m_bConnected)
	{
		KillTimer(1);
		MessageBox("请先打开串口");
		return;
	}
	if(wParam==100)
	{
		KillTimer(1);
		if(!m_failflag)
			{
					CWnd* pWnd=GetDlgItem(IDC_STATIC_5);
					pWnd->SetWindowText("");
			        pWnd=GetDlgItem(IDC_STATIC_BUCHANG);
		            pWnd->SetWindowText("");
			        pWnd=GetDlgItem(IDC_STATIC_COMMAND);
			        pWnd->SetWindowText("请输入新的命令");
			        pWnd=GetDlgItem(IDC_STATIC_STATUS);
			        pWnd->SetWindowText("执行完毕");
			        m_ncomand1=0;
					
				}
				else
					MessageBox("请检查连线是否正确或下位机是否打开","通信失败",MB_ICONWARNING);
				}
	else if(wParam>=11&&wParam<=56)
	{
		m_bflag=0;
		m_ncomand1=wParam;
		strcomand=l[m_ncomand1];
		CWnd* pWnd=GetDlgItem(IDC_STATIC_COMMAND);
		pWnd->SetWindowText(strcomand);
		pWnd=GetDlgItem(IDC_STATIC_STATUS);
		pWnd->SetWindowText("");
		pWnd=GetDlgItem(IDC_STATIC_5);
		pWnd->SetWindowText("");
		pWnd=GetDlgItem(IDC_STATIC_BUCHANG);
		pWnd->SetWindowText("");
		m_nsum=0;
		m_njishu=0;
	}
	else if(wParam>=0&&wParam<=9)
	{	
		if(m_ncomand1>=12&&m_ncomand1<=21)		
		{
			m_bflag=1;
			m_nmsg[m_njishu]=wParam;
		   //pWnd=GetDlgItem(IDC_STATIC_COMMAND);
	        //pWnd->SetWindowText(strcomand);
			CWnd* pWnd=GetDlgItem(IDC_STATIC_5);
			pWnd->SetWindowText("步长:");
			++m_njishu;
			if(m_njishu==1)
			{
				CString m_stemp;
				m_nsum=m_nmsg[0];
				m_stemp.Format("%d",m_nsum);
				pWnd=GetDlgItem(IDC_STATIC_BUCHANG);
				pWnd->SetWindowText(m_stemp);
			}
			if(m_njishu==2)
			{
				CString m_stemp;
				m_nsum=m_nmsg[0]*10+m_nmsg[1];
				m_stemp.Format("%d",m_nsum);
				pWnd=GetDlgItem(IDC_STATIC_BUCHANG);
				pWnd->SetWindowText(m_stemp);
			}
			if(m_njishu==3)
			{
				CString m_stemp;
				m_nsum=m_nmsg[0]*100+m_nmsg[1]*10+m_nmsg[2];
				//m_nmsg[0]=0;
				//m_nmsg[1]=0
				//	m_nmsg[2]=0;
				//	m_njishu=0;
				m_stemp.Format("%d",m_nsum);
				pWnd=GetDlgItem(IDC_STATIC_BUCHANG);
				pWnd->SetWindowText(m_stemp);
			}
			if(m_njishu==4)
			{
				CString m_stemp;
				m_nsum=m_nmsg[0]*1000+m_nmsg[1]*100+m_nmsg[2]*10+m_nmsg[3];
				m_stemp.Format("%d",m_nsum);
				pWnd=GetDlgItem(IDC_STATIC_BUCHANG);
				pWnd->SetWindowText(m_stemp);
			}
			if(m_njishu>4)
			{
				m_njishu=1;
				m_nmsg[0]=m_nmsg[4];
				CString m_stemp;
				m_nsum=m_nmsg[0];
				m_stemp.Format("%d",m_nsum);
				pWnd=GetDlgItem(IDC_STATIC_BUCHANG);
				pWnd->SetWindowText(m_stemp);
				m_nmsg[1]=0;
				m_nmsg[2]=0;
				m_nmsg[3]=0;
			}
		}		
		else
			;	//MessageBox("清先输入运动步数命令");
	}
	else if(wParam=10)
	{    SetTimer(1,500,NULL);
		if(m_ncomand1>=11&&m_ncomand1<=56)
		{
			if(!m_bflag)
			{
				strstatus="正在执行命令,请稍后.....";
				CWnd* pWnd=GetDlgItem(IDC_STATIC_STATUS);
				pWnd->SetWindowText(strstatus);
				Execute(m_ncomand1);
			
			}	
			else //if(m_ncomand1>=12&&m_ncomand1<=21)
			{
				unsigned char m_uhi,m_ulo;
				m_nmsg[0]=0;
	        	m_nmsg[1]=0;
				m_nmsg[2]=0;
				m_nmsg[3]=0;
				m_njishu=0;
			///	CWnd* pWnd=GetDlgItem(IDC_STATIC_STATUS);
			   /// pWnd->SetWindowText("正在执行命令,请稍后.....");
				switch(m_ncomand1)
				{
				case(12):
					m_nguanjie=01;
					m_nfangxiang=00;
					m_uhi=(unsigned char)(m_nsum/256);
					m_ulo=(unsigned char)(m_nsum-m_uhi*256);
					m_ndelay=(m_nsum+500)/m_nsudu;
					Execute_1(m_nguanjie,m_nfangxiang,m_uhi,m_ulo,m_ndelay);
					break;
					case(13):
					m_nguanjie=0x01;
					m_nfangxiang=0xff;
					m_uhi=(unsigned char)(m_nsum/256);
					m_ulo=(unsigned char)(m_nsum-m_uhi*256);
					m_ndelay=(m_nsum+500)/m_nsudu;
					Execute_1(m_nguanjie,m_nfangxiang,m_uhi,m_ulo,m_ndelay);
					break;
					case(14):
					m_nguanjie=0x02;
					m_nfangxiang=0x00;
					m_uhi=(unsigned char)(m_nsum/256);
					m_ulo=(unsigned char)(m_nsum-m_uhi*256);
					m_ndelay=(m_nsum)/(m_nsudu*3);
					Execute_1(m_nguanjie,m_nfangxiang,m_uhi,m_ulo,m_ndelay);
					break;
					case(15):
					m_nguanjie=0x02;
					m_nfangxiang=0xff;
					m_uhi=(unsigned char)(m_nsum/256);
					m_ulo=(unsigned char)(m_nsum-m_uhi*256);
					m_ndelay=(m_nsum)/(m_nsudu*3);
					Execute_1(m_nguanjie,m_nfangxiang,m_uhi,m_ulo,m_ndelay);
					break;
					case(16):
					m_nguanjie=0x04;
					m_nfangxiang=0x00;
					m_uhi=(unsigned char)(m_nsum/256);
					m_ulo=(unsigned char)(m_nsum-m_uhi*256);
					m_ndelay=(m_nsum+500)/m_nsudu;
					Execute_1(m_nguanjie,m_nfangxiang,m_uhi,m_ulo,m_ndelay);
					break;
					case(17):
					m_nguanjie=0x04;
					m_nfangxiang=0xff;
					m_uhi=(unsigned char)(m_nsum/256);
					m_ulo=(unsigned char)(m_nsum-m_uhi*256);
					m_ndelay=(m_nsum+500)/m_nsudu;
					Execute_1(m_nguanjie,m_nfangxiang,m_uhi,m_ulo,m_ndelay);
					break;
					case(18):
					m_nguanjie=0x05;
					m_nfangxiang=0x00;
					m_uhi=(unsigned char)(m_nsum/256);
					m_ulo=(unsigned char)(m_nsum-m_uhi*256);
					m_ndelay=(m_nsum+500)/m_nsudu;
					Execute_1(m_nguanjie,m_nfangxiang,m_uhi,m_ulo,m_ndelay);
					break;
					case(19):
					m_nguanjie=0x05;
					m_nfangxiang=0xff;
					m_uhi=(unsigned char)(m_nsum/256);
					m_ulo=(unsigned char)(m_nsum-m_uhi*256);
					m_ndelay=(m_nsum+500)/m_nsudu;
					Execute_1(m_nguanjie,m_nfangxiang,m_uhi,m_ulo,m_ndelay);
					break;
					case(20):
					m_nguanjie=0x03;
					m_nfangxiang=0x00;
					m_uhi=(unsigned char)(m_nsum/256);
					m_ulo=(unsigned char)(m_nsum-m_uhi*256);
					m_ndelay=(m_nsum+500)/(m_nsudu*2);
					Execute_1(m_nguanjie,m_nfangxiang,m_uhi,m_ulo,m_ndelay);
					break;
					case(21):
					m_nguanjie=0x03;
					m_nfangxiang=0xff;
					m_uhi=(unsigned char)(m_nsum/256);
					m_ulo=(unsigned char)(m_nsum-m_uhi*256);
					m_ndelay=(m_nsum+500)/(m_nsudu*2);
					Execute_1(m_nguanjie,m_nfangxiang,m_uhi,m_ulo,m_ndelay);
					break;
				}
				
           }
			m_failflag=1;}
	   else
		   MessageBox("清先输入命令");
     }
	 else
		 MessageBox("不能识别,请重新输入命令");
}
void CRobotView::ProcessMyMessage()
{
	CDC *PDc=GetDC();
	m_failflag=0;
		switch(m_ncomand1)
		{
		case(37):
			{
				m_nsudu++;
				if(m_nsudu==6)
					m_nsudu=1;
				OnDraw(PDc);
			}
			break;
		case(44):
			{
				m_nsudu--;
				if(m_nsudu==0)
					m_nsudu=5;
				OnDraw(PDc);
			}
			break;
		case(45):
			{
				m_ngzq++;
				if(m_ngzq==8)
					m_ngzq=0;
				OnDraw(PDc);
			}
			break;
		case(46):
			{
				m_ngzq--;
				if(m_ngzq==-1)
					m_ngzq=7;
				OnDraw(PDc);
			}
			break;
		}
		CWnd* pWnd=GetDlgItem(IDC_STATIC_COMMAND);
		pWnd->SetWindowText("请输入新的命令");
		pWnd=GetDlgItem(IDC_STATIC_STATUS);
		pWnd->SetWindowText("执行完毕");
		m_ncomand1=0;
	//}
	//else
	//	MessageBox("请检查连线是否正确或下位机是否打开","通信失败",MB_ICONWARNING);
}
void CRobotView::SuduDisplay(int n)
{
	CWnd* pWnd=GetDlgItem(IDC_STATIC_SUDU);
	CDC* pControlDC=pWnd->GetDC();
	pWnd->Invalidate();
	pWnd->UpdateWindow();
	pControlDC->SelectStockObject(BLACK_BRUSH);
	CBitmap mBit;
	CDC MemDC;
	MemDC.CreateCompatibleDC(NULL);
	switch(n)
	{
	case 0:
	mBit.LoadBitmap(IDB_BMP10);
	break;
	case 1:
	mBit.LoadBitmap(IDB_BMP11);
	break;
	case 2:
	mBit.LoadBitmap(IDB_BMP12);
	break;
	case 3:
	mBit.LoadBitmap(IDB_BMP13);
	break;
	case 4:
	mBit.LoadBitmap(IDB_BMP14);
	break;
	case 5:
	mBit.LoadBitmap(IDB_BMP15);
	break;
	default:
		//mBit.LoadBitmap(IDB_BMP0);
		MessageBox("error");
	}
	CBitmap *pOldBit=MemDC.SelectObject(&mBit);
	pControlDC->BitBlt(0,0,900,700,&MemDC,0,0,SRCCOPY);
	MemDC.SelectObject(pOldBit);
}
void CRobotView::GzqDisplay(int n)
{
	CWnd* pWnd=GetDlgItem(IDC_STATIC_GONGZUOQU);
	CDC* pControlDC=pWnd->GetDC();
	pWnd->Invalidate();
	pWnd->UpdateWindow();
	pControlDC->SelectStockObject(BLACK_BRUSH);
	CBitmap mBit;
	CDC MemDC;
	MemDC.CreateCompatibleDC(NULL);
	switch(n)
	{
	case 0:
	mBit.LoadBitmap(IDB_BMP10);
	break;
	case 1:
	mBit.LoadBitmap(IDB_BMP11);
	break;
	case 2:
	mBit.LoadBitmap(IDB_BMP12);
	break;
	case 3:
	mBit.LoadBitmap(IDB_BMP13);
	break;
	case 4:
	mBit.LoadBitmap(IDB_BMP14);
	break;
	case 5:
	mBit.LoadBitmap(IDB_BMP15);
	break;
	case 6:
	mBit.LoadBitmap(IDB_BMP16);
	break;
	case 7:
	mBit.LoadBitmap(IDB_BMP17);
	break;
	default:
		//mBit.LoadBitmap(IDB_BMP0);
		MessageBox("error");
	}
	CBitmap *pOldBit=MemDC.SelectObject(&mBit);
	pControlDC->BitBlt(0,0,900,700,&MemDC,0,0,SRCCOPY);
	MemDC.SelectObject(pOldBit);
}
void CRobotView::Execute(int n)
{
	CRobotDoc* pDoc=GetDocument();

	unsigned char send1;

	switch(n)
	{
	case(11):
		home();
		break;
	case(12):
		{//大臂正传
		unsigned char send[6]={0x53,0x01,0x00,0x00,0x07,0x18};
	for(int i=0;i<=5;i++)
	pDoc->WriteComm(&send[i],1);
	Sleep(2000/m_nsudu);
	break;
			}
	case(13):
		{
	unsigned char send[6]={0x53,0x01,0xff,0x00,0x07,0x18};
	for(int i=0;i<=5;i++)
	pDoc->WriteComm(&send[i],1);
//	pDoc->ReadComm(&buf,1);
//	if(nLength)
////	{
//		str.Format("%d",buf);
//		m_edit1.SetSel(-1, 0);
//		m_edit1.ReplaceSel(str); // 向编辑视图中插入收到的字符
//	}
//	else
//	MessageBox("fjdklfjsdklgjsdfkl");
	Sleep(2000/m_nsudu);
	break;
		}
	case(14)://xiaobizhengzhuan
		{
		unsigned char send[6]={0x53,0x02,0x00,0x00,0x0f,0xe3};
	for(int i=0;i<=5;i++)
	pDoc->WriteComm(&send[i],1);
	Sleep(2000/m_nsudu);
			break;
		}
	
	case(15)://小臂反转
		{
		unsigned char send[6]={0x53,0x02,0xff,0x00,0x0f,0xe3};
	for(int i=0;i<=5;i++)
	pDoc->WriteComm(&send[i],1);
	Sleep(2000/m_nsudu);
	break;	
		}	
	case(16)://手腕正转
			{
		unsigned char send[6]={0x53,0x04,0x00,0x00,0x00,0xff};
	for(int i=0;i<=5;i++)
	pDoc->WriteComm(&send[i],1);
	Sleep(1000/m_nsudu);
	break;
			}
	case(17)://shouwanfanzhuan
		{
		unsigned char send[6]={0x53,0x04,0xff,0x00,0x00,0xff};
	for(int i=0;i<=5;i++)
	pDoc->WriteComm(&send[i],1);
	Sleep(1000/m_nsudu);
		}
		break;
	case(18)://shouzhuazhangkai
			{
		unsigned char send[6]={0x53,0x05,0x00,0x00,0x00,0x43};
	for(int i=0;i<=5;i++)
	pDoc->WriteComm(&send[i],1);
	Sleep(2000/m_nsudu);
		}
		break;
	case(19):
		{
		unsigned char send[6]={0x53,0x05,0xff,0x00,0x00,0xf3};
	for(int i=0;i<=5;i++)
	pDoc->WriteComm(&send[i],1);
	Sleep(2000/m_nsudu);
		}
		break;
	case(20)://shangsheng
			{
		unsigned char send[6]={0x53,0x03,0x00,0x00,0x02,0xe3};
	for(int i=0;i<=5;i++)
	pDoc->WriteComm(&send[i],1);
	Sleep(1000/m_nsudu);
		}
		break;
	case(21):
		{
		unsigned char send[6]={0x53,0x03,0xff,0x00,0x02,0xe3};
	for(int i=0;i<=5;i++)
	pDoc->WriteComm(&send[i],1);
	Sleep(1000/m_nsudu);
		}
		break;
/*	case(22)://dabiyunxing
		{
		unsigned char send[3]={0x63,0x01,0x00};
	for(int i=0;i<=2;i++)
	pDoc->WriteComm(&send[i],1);
	Sleep(2000);
		}
		break;
	case(23):
			{
		unsigned char send[3]={0x63,0x01,0xff};
	for(int i=0;i<=2;i++)
	pDoc->WriteComm(&send[i],1);
	Sleep(2000);
		}
		break;
	case(24)://xiaobiyunxing
		{
		unsigned char send[3]={0x63,0x02,0x00};
	for(int i=0;i<=2;i++)
	pDoc->WriteComm(&send[i],1);
	Sleep(2000);
		}
		break;
	case(25):
		{
		unsigned char send[3]={0x63,0x02,0xff};
	for(int i=0;i<=2;i++)
	pDoc->WriteComm(&send[i],1);
	Sleep(2000);
		}
		break;
	case(26)://shouwanyunxing
		{
		unsigned char send[3]={0x63,0x04,0x00};
	for(int i=0;i<=2;i++)
	pDoc->WriteComm(&send[i],1);
	Sleep(2000);
		}
		break;
	case(27):
		{
		unsigned char send[3]={0x63,0x04,0xff};
	for(int i=0;i<=2;i++)
	pDoc->WriteComm(&send[i],1);
	Sleep(2000);
		}
		break;
	case(28)://shouzhuayunxing
		{
		unsigned char send[3]={0x63,0x05,0x00};
	for(int i=0;i<=2;i++)
	pDoc->WriteComm(&send[i],1);
	Sleep(2000);
		}
		break;
	case(29):
			{
		unsigned char send[3]={0x63,0x05,0xff};
	for(int i=0;i<=2;i++)
	pDoc->WriteComm(&send[i],1);
	Sleep(2000);
		}
		break;
	case(30)://shengjiangyunxing
			{
		unsigned char send[3]={0x63,0x03,0x00};
	for(int i=0;i<=2;i++)
	pDoc->WriteComm(&send[i],1);
	Sleep(2000);
		}
		break;
	case(31):
			{
		unsigned char send[3]={0x63,0x05,0xff};
	for(int i=0;i<=2;i++)
	pDoc->WriteComm(&send[i],1);
	Sleep(2000);
		}
		break;
*/
	case(32)://dabiguiling
			{
		unsigned char send[2]={0xa3,0x01};
	for(int i=0;i<=1;i++)
	pDoc->WriteComm(&send[i],1);
	Sleep(18000);
		}
		break;
	case(33)://xiaobiguiling
			{
		unsigned char send[2]={0xa3,0x02};
	for(int i=0;i<=1;i++)
	pDoc->WriteComm(&send[i],1);
	Sleep(15000);
		}
		break;
	case(34)://shouwanguiling
			{
		unsigned char send[2]={0xa3,0x04};
	for(int i=0;i<=1;i++)
	pDoc->WriteComm(&send[i],1);
	Sleep(6000);
		}
		break;
	case(35)://shouzhuaguiling
			{
		unsigned char send[2]={0xa3,0x05};
	for(int i=0;i<=1;i++)
	pDoc->WriteComm(&send[i],1);
	Sleep(6000);
		}
		break;
	case(36)://shengjiangguiling
			{
		unsigned char send[2]={0xa3,0x03};
	for(int i=0;i<=1;i++)
	pDoc->WriteComm(&send[i],1);
	Sleep(10000);
		}
		break;
	case(37)://sudujia
		{	
		send1=0xb3;
		pDoc->WriteComm(&send1,1);
		}
			Sleep(1000);
		break;
	case(38)://yuandianjiyi
		send1=0x73;
		pDoc->WriteComm(&send1,1);
		break;
	case(39):
		send1=0xc3;
		pDoc->WriteComm(&send1,1);
		break;
	case(40):
		send1=0xf6;
		pDoc->WriteComm(&send1,1);
		break;
	case(41):
		send1=0x83;
		pDoc->WriteComm(&send1,1);
		break;
	case(42):
		send1=0x93;
		pDoc->WriteComm(&send1,1);
		break;
	case(43):
	//	{
	//	unsigned char send[2]={0x86,0x03};
	//	for(int i=0;i<=1;i++)
	//	pDoc->WriteComm(&send[i],1);
	//	Sleep(4000);
	//	}
		send1=0x86;
		pDoc->WriteComm(&send1,1);
		break;
	case(44)://sudujian
		{
		send1=0xe3;
		pDoc->WriteComm(&send1,1);
		}
		break;
	case(45):
		{
		send1=0x12;
		pDoc->WriteComm(&send1,1);
		}
		break;
	case(46):
		{
		send1=0x22;
		pDoc->WriteComm(&send1,1);
		}
		break;
	case(47):		//danbuzaixian
		send1=0x13;
		pDoc->WriteComm(&send1,1);
		Sleep(4000);
		break;
	case(48):		//zhouqizaixian
		send1=0x23;
		pDoc->WriteComm(&send1,1);
		Sleep(8000);
		break;
	case(49):		//lianxuzaixian
		send1=0x33;
		pDoc->WriteComm(&send1,1);
		break;
	case(50):
		//send1=0x32;
		//pDoc->WriteComm(&send1,1);
		break;
	case(51):
		break;
	case(52):
		send1=0x43;
		pDoc->WriteComm(&send1,1);
		break;
	case(53):
		break;
	case(54):
		pDoc->OnSetupcomm();
		break;
	case(55):
		pDoc->OnOpencomm();
		break;
	default:
		pDoc->OnClosecomm();
		break;
	}

}
//void CRobotView::OnButton3() 
//{
	// TODO: Add your control notification handler code here
//	SendMessage(WM_USER + 1002,10,0);
//}
void CRobotView::Execute_1(unsigned char a,unsigned char b,unsigned char c,unsigned char d,int e)
{
	CRobotDoc* pDoc=GetDocument();
	unsigned char send[6]={0x53,a,b,0x00,c,d};
	for(int i=0;i<=5;i++)
	pDoc->WriteComm(&send[i],1);
	Sleep(m_ndelay);
}


HBRUSH CRobotView::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 
{
	HBRUSH hbr = CFormView::OnCtlColor(pDC, pWnd, nCtlColor);
	
	// TODO: Change any attributes of the DC here
		switch(nCtlColor)
		{
	case CTLCOLOR_DLG:
	{
	//pDC->SetBkMode(TRANSPARENT);
	return m_brush;   //返加绿色刷子
	}
	case CTLCOLOR_STATIC:
	{
	   //返加绿色刷子
		//	pDC->SetBkMode(TRANSPARENT);
				return m_brush;
	}
		}
	// TODO: Return a different brush if the default is not desired
	return hbr;
}
void CRobotView::home() 
{
	SendMessage(WM_USER+1002,32,0);
	SendMessage(WM_USER+1002,10,0);
	Sleep(1000);
	SendMessage(WM_USER+1002,33,0);
	SendMessage(WM_USER+1002,10,0);
	Sleep(1000);

    SendMessage(WM_USER+1002,34,0);
	SendMessage(WM_USER+1002,10,0);
	Sleep(1000);
	SendMessage(WM_USER+1002,35,0);
	SendMessage(WM_USER+1002,10,0);
	Sleep(1000);
	SendMessage(WM_USER+1002,36,0);
	SendMessage(WM_USER+1002,10,0);
	Sleep(1000);
}
LRESULT CRobotView::OnCommNotify(WPARAM wParam, LPARAM lParam)
{
	unsigned char buf;
	CWnd* pWnd=GetDlgItem(IDC_STATIC_COMMAND);
	CString str1,str2;
	CRobotDoc* pDoc=GetDocument();
	m_recflag=0;
	if(!pDoc->m_bConnected || 
		(wParam & EV_RXCHAR)!=EV_RXCHAR) // 是否是EV_RXCHAR事件?
	{
		SetEvent(pDoc->m_hPostMsgEvent); // 允许发送下一个WM_COMMNOTIFY消息
		return 0L;
	}
	nLength=pDoc->ReadComm(&buf,1);
	if(nLength)
	{
	//	str1.Format("%d",buf);
		//m_edit1.SetSel(-1, 0);
	//	m_edit1.ReplaceSel(str1); // 向编辑视图中插入收到的字符
		str2="正在执行命令,请稍后.....";
		pWnd->SetWindowText(str2);
		SendMessage(WM_USER+1003);
	}
	SetEvent(pDoc->m_hPostMsgEvent); // 允许发送下一个WM_COMMNOTIFY消息
	return 0L;
}

void CRobotView::OnTimer(UINT nIDEvent) 
{
	// TODO: Add your message handler code here and/or call default
	SendMessage(WM_USER+1002,100);

	CFormView::OnTimer(nIDEvent);
}